home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / MW MPW Binaries 1.1.1a2 / mwcPPC / MWCIncludes / Slots.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-31  |  14.5 KB  |  526 lines  |  [TEXT/MMCC]

  1. /*
  2.     File:        Slots.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __SLOTS__
  13. #define __SLOTS__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __EVENTS__
  23. #include <Events.h>
  24. /*    #include <Quickdraw.h>                                        */
  25. /*        #include <QuickdrawText.h>                                */
  26. /*            #include <IntlResources.h>                            */
  27. /*    #include <OSUtils.h>                                        */
  28. #endif
  29.  
  30. #ifndef __OSUTILS__
  31. #endif
  32.  
  33. #ifndef __FILES__
  34. #include <Files.h>
  35. /*    #include <SegLoad.h>                                        */
  36. #endif
  37.  
  38. enum  {
  39.     fCardIsChanged                = 1,                            /*Card is Changed field in StatusFlags field of sInfoArray*/
  40.     fCkForSame                    = 0,                            /*For SearchSRT. Flag to check for SAME sResource in the table. */
  41.     fCkForNext                    = 1,                            /*For SearchSRT. Flag to check for NEXT sResource in the table. */
  42.     fWarmStart                    = 2,                            /*If this bit is set then warm start else cold start.*/
  43.     stateNil                    = 0,                            /*State*/
  44.     stateSDMInit                = 1,                            /*:Slot declaration manager Init*/
  45.     statePRAMInit                = 2,                            /*:sPRAM record init*/
  46.     statePInit                    = 3,                            /*:Primary init*/
  47.     stateSInit                    = 4,                            /*:Secondary init*/
  48. /* flags for spParamData */
  49.     fall                        = 0,                            /* bit 0: set=search enabled/disabled sRsrc's */
  50.     foneslot                    = 1,                            /*    1: set=search sRsrc's in given slot only */
  51.     fnext                        = 2                                /*    2: set=search for next sRsrc */
  52. };
  53.  
  54.  
  55. /*
  56.     SlotIntServiceProcs cannot be written in or called from a high-level 
  57.     language without the help of mixed mode or assembly glue because they 
  58.     use the following parameter-passing convention:
  59.  
  60.     typedef pascal short (*SlotIntServiceProcPtr)(long sqParameter);
  61.  
  62.         In:
  63.             =>     sqParameter                A1.L
  64.         Out:
  65.             <=    interrupt handled flag    D0.W
  66. */
  67.  
  68. enum  {
  69.     uppSlotIntServiceProcInfo    = kRegisterBased|RESULT_SIZE(kTwoByteCode)|REGISTER_RESULT_LOCATION(kRegisterD0)|REGISTER_ROUTINE_PARAMETER(1,kRegisterA1,kFourByteCode)
  70. };
  71.  
  72. #if USESROUTINEDESCRIPTORS
  73. typedef pascal short (*SlotIntServiceProcPtr)(long sqParameter);
  74.  
  75. typedef UniversalProcPtr SlotIntServiceUPP;
  76.  
  77. #define CallSlotIntServiceProc(userRoutine, sqParameter)  \
  78.     CallUniversalProc((UniversalProcPtr)(userRoutine), uppSlotIntServiceProcInfo, (sqParameter))
  79.  
  80. #define NewSlotIntServiceProc(userRoutine)  \
  81.     (SlotIntServiceUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSlotIntServiceProcInfo, GetCurrentISA())
  82.  
  83. #else
  84. typedef ProcPtr SlotIntServiceUPP;
  85.  
  86. #define NewSlotIntServiceProc(userRoutine)  \
  87.     (SlotIntServiceUPP)(userRoutine)
  88.  
  89. #endif
  90.  
  91. #if defined(powerc) || defined (__powerc)
  92. #pragma options align=mac68k
  93. #endif
  94. struct SlotIntQElement {
  95.     Ptr                            sqLink;                            /*ptr to next element*/
  96.     short                        sqType;                            /*queue type ID for validity*/
  97.     short                        sqPrio;                            /*priority*/
  98.     SlotIntServiceUPP            sqAddr;                            /*interrupt service routine*/
  99.     long                        sqParm;                            /*optional A1 parameter*/
  100. };
  101. #if defined(powerc) || defined(__powerc)
  102. #pragma options align=reset
  103. #endif
  104.  
  105. typedef struct SlotIntQElement SlotIntQElement;
  106.  
  107. typedef SlotIntQElement *SQElemPtr;
  108.  
  109. #if defined(powerc) || defined (__powerc)
  110. #pragma options align=mac68k
  111. #endif
  112. struct SpBlock {
  113.     long                        spResult;                        /*FUNCTION Result*/
  114.     Ptr                            spsPointer;                        /*structure pointer*/
  115.     long                        spSize;                            /*size of structure*/
  116.     long                        spOffsetData;                    /*offset/data field used by sOffsetData*/
  117.     Ptr                            spIOFileName;                    /*ptr to IOFile name for sDisDrvrName*/
  118.     Ptr                            spsExecPBlk;                    /*pointer to sExec parameter block.*/
  119.     long                        spParamData;                    /*misc parameter data (formerly spStackPtr).*/
  120.     long                        spMisc;                            /*misc field for SDM.*/
  121.     long                        spReserved;                        /*reserved for future expansion*/
  122.     short                        spIOReserved;                    /*Reserved field of Slot Resource Table*/
  123.     short                        spRefNum;                        /*RefNum*/
  124.     short                        spCategory;                        /*sType: Category*/
  125.     short                        spCType;                        /*Type*/
  126.     short                        spDrvrSW;                        /*DrvrSW*/
  127.     short                        spDrvrHW;                        /*DrvrHW*/
  128.     char                        spTBMask;                        /*type bit mask bits 0..3 mask words 0..3*/
  129.     char                        spSlot;                            /*slot number*/
  130.     char                        spID;                            /*structure ID*/
  131.     char                        spExtDev;                        /*ID of the external device*/
  132.     char                        spHwDev;                        /*Id of the hardware device.*/
  133.     char                        spByteLanes;                    /*bytelanes from card ROM format block*/
  134.     char                        spFlags;                        /*standard flags*/
  135.     char                        spKey;                            /*Internal use only*/
  136. };
  137. #if defined(powerc) || defined(__powerc)
  138. #pragma options align=reset
  139. #endif
  140.  
  141. typedef struct SpBlock SpBlock;
  142.  
  143. typedef SpBlock *SpBlockPtr;
  144.  
  145. #if defined(powerc) || defined (__powerc)
  146. #pragma options align=mac68k
  147. #endif
  148. struct SInfoRecord {
  149.     Ptr                            siDirPtr;                        /*Pointer to directory*/
  150.     short                        siInitStatusA;                    /*initialization E*/
  151.     short                        siInitStatusV;                    /*status returned by vendor init code*/
  152.     char                        siState;                        /*initialization state*/
  153.     char                        siCPUByteLanes;                    /*0=[d0..d7] 1=[d8..d15]*/
  154.     char                        siTopOfROM;                        /*Top of ROM= $FssFFFFx: x is TopOfROM*/
  155.     char                        siStatusFlags;                    /*bit 0 - card is changed*/
  156.     short                        siTOConst;                        /*Time Out C for BusErr*/
  157.     char                        siReserved[2];                    /*reserved*/
  158.     Ptr                            siROMAddr;                        /* addr of top of ROM */
  159.     char                        siSlot;                            /* slot number */
  160.     char                        siPadding[3];                    /* reserved */
  161. };
  162. #if defined(powerc) || defined(__powerc)
  163. #pragma options align=reset
  164. #endif
  165.  
  166. typedef struct SInfoRecord SInfoRecord;
  167.  
  168. typedef SInfoRecord *SInfoRecPtr;
  169.  
  170. #if defined(powerc) || defined (__powerc)
  171. #pragma options align=mac68k
  172. #endif
  173. struct SDMRecord {
  174.     ProcPtr                        sdBEVSave;                        /*Save old BusErr vector*/
  175.     ProcPtr                        sdBusErrProc;                    /*Go here to determine if it is a BusErr*/
  176.     ProcPtr                        sdErrorEntry;                    /*Go here if BusErrProc finds real BusErr*/
  177.     long                        sdReserved;                        /*Reserved*/
  178. };
  179. #if defined(powerc) || defined(__powerc)
  180. #pragma options align=reset
  181. #endif
  182.  
  183. typedef struct SDMRecord SDMRecord;
  184.  
  185. #if defined(powerc) || defined (__powerc)
  186. #pragma options align=mac68k
  187. #endif
  188. struct FHeaderRec {
  189.     long                        fhDirOffset;                    /*offset to directory*/
  190.     long                        fhLength;                        /*length of ROM*/
  191.     long                        fhCRC;                            /*CRC*/
  192.     char                        fhROMRev;                        /*revision of ROM*/
  193.     char                        fhFormat;                        /*format - 2*/
  194.     long                        fhTstPat;                        /*test pattern*/
  195.     char                        fhReserved;                        /*reserved*/
  196.     char                        fhByteLanes;                    /*ByteLanes*/
  197. };
  198. #if defined(powerc) || defined(__powerc)
  199. #pragma options align=reset
  200. #endif
  201.  
  202. typedef struct FHeaderRec FHeaderRec;
  203.  
  204. typedef FHeaderRec *FHeaderRecPtr;
  205.  
  206. #if defined(powerc) || defined (__powerc)
  207. #pragma options align=mac68k
  208. #endif
  209. struct SEBlock {
  210.     unsigned char                seSlot;                            /*Slot number.*/
  211.     unsigned char                sesRsrcId;                        /*sResource Id.*/
  212.     short                        seStatus;                        /*Status of code executed by sExec.*/
  213.     unsigned char                seFlags;                        /*Flags*/
  214.     unsigned char                seFiller0;                        /*Filler, must be SignedByte to align on odd boundry*/
  215.     unsigned char                seFiller1;                        /*Filler*/
  216.     unsigned char                seFiller2;                        /*Filler*/
  217.     long                        seResult;                        /*Result of sLoad.*/
  218.     long                        seIOFileName;                    /*Pointer to IOFile name.*/
  219.     unsigned char                seDevice;                        /*Which device to read from.*/
  220.     unsigned char                sePartition;                    /*The partition.*/
  221.     unsigned char                seOSType;                        /*Type of OS.*/
  222.     unsigned char                seReserved;                        /*Reserved field.*/
  223.     unsigned char                seRefNum;                        /*RefNum of the driver.*/
  224.     unsigned char                seNumDevices;                    /* Number of devices to load.*/
  225.     unsigned char                seBootState;                    /*State of StartBoot code.*/
  226. };
  227. #if defined(powerc) || defined(__powerc)
  228. #pragma options align=reset
  229. #endif
  230.  
  231. typedef struct SEBlock SEBlock;
  232.  
  233. #ifdef __cplusplus
  234. extern "C" {
  235. #endif
  236.  
  237.  
  238. /*  Principle  */
  239.  
  240.  
  241. #if USES68KINLINES
  242. #pragma parameter __D0 SReadByte(__A0)
  243. #endif
  244. extern pascal OSErr SReadByte(SpBlockPtr spBlkPtr)
  245.  TWOWORDINLINE(0x7000, 0xA06E);
  246.  
  247. #if USES68KINLINES
  248. #pragma parameter __D0 SReadWord(__A0)
  249. #endif
  250. extern pascal OSErr SReadWord(SpBlockPtr spBlkPtr)
  251.  TWOWORDINLINE(0x7001, 0xA06E);
  252.  
  253. #if USES68KINLINES
  254. #pragma parameter __D0 SReadLong(__A0)
  255. #endif
  256. extern pascal OSErr SReadLong(SpBlockPtr spBlkPtr)
  257.  TWOWORDINLINE(0x7002, 0xA06E);
  258.  
  259. #if USES68KINLINES
  260. #pragma parameter __D0 SGetCString(__A0)
  261. #endif
  262. extern pascal OSErr SGetCString(SpBlockPtr spBlkPtr)
  263.  TWOWORDINLINE(0x7003, 0xA06E);
  264.  
  265. #if USES68KINLINES
  266. #pragma parameter __D0 SGetBlock(__A0)
  267. #endif
  268. extern pascal OSErr SGetBlock(SpBlockPtr spBlkPtr)
  269.  TWOWORDINLINE(0x7005, 0xA06E);
  270.  
  271. #if USES68KINLINES
  272. #pragma parameter __D0 SFindStruct(__A0)
  273. #endif
  274. extern pascal OSErr SFindStruct(SpBlockPtr spBlkPtr)
  275.  TWOWORDINLINE(0x7006, 0xA06E);
  276.  
  277. #if USES68KINLINES
  278. #pragma parameter __D0 SReadStruct(__A0)
  279. #endif
  280. extern pascal OSErr SReadStruct(SpBlockPtr spBlkPtr)
  281.  TWOWORDINLINE(0x7007, 0xA06E);
  282.  
  283. /*  Special  */
  284.  
  285.  
  286. #if USES68KINLINES
  287. #pragma parameter __D0 SReadInfo(__A0)
  288. #endif
  289. extern pascal OSErr SReadInfo(SpBlockPtr spBlkPtr)
  290.  TWOWORDINLINE(0x7010, 0xA06E);
  291.  
  292. #if USES68KINLINES
  293. #pragma parameter __D0 SReadPRAMRec(__A0)
  294. #endif
  295. extern pascal OSErr SReadPRAMRec(SpBlockPtr spBlkPtr)
  296.  TWOWORDINLINE(0x7011, 0xA06E);
  297.  
  298. #if USES68KINLINES
  299. #pragma parameter __D0 SPutPRAMRec(__A0)
  300. #endif
  301. extern pascal OSErr SPutPRAMRec(SpBlockPtr spBlkPtr)
  302.  TWOWORDINLINE(0x7012, 0xA06E);
  303.  
  304. #if USES68KINLINES
  305. #pragma parameter __D0 SReadFHeader(__A0)
  306. #endif
  307. extern pascal OSErr SReadFHeader(SpBlockPtr spBlkPtr)
  308.  TWOWORDINLINE(0x7013, 0xA06E);
  309.  
  310. #if USES68KINLINES
  311. #pragma parameter __D0 SNextSRsrc(__A0)
  312. #endif
  313. extern pascal OSErr SNextSRsrc(SpBlockPtr spBlkPtr)
  314.  TWOWORDINLINE(0x7014, 0xA06E);
  315.  
  316. #if USES68KINLINES
  317. #pragma parameter __D0 SNextTypeSRsrc(__A0)
  318. #endif
  319. extern pascal OSErr SNextTypeSRsrc(SpBlockPtr spBlkPtr)
  320.  TWOWORDINLINE(0x7015, 0xA06E);
  321.  
  322. #if USES68KINLINES
  323. #pragma parameter __D0 SRsrcInfo(__A0)
  324. #endif
  325. extern pascal OSErr SRsrcInfo(SpBlockPtr spBlkPtr)
  326.  TWOWORDINLINE(0x7016, 0xA06E);
  327.  
  328. #if USES68KINLINES
  329. #pragma parameter __D0 SCkCardStat(__A0)
  330. #endif
  331. extern pascal OSErr SCkCardStat(SpBlockPtr spBlkPtr)
  332.  TWOWORDINLINE(0x7018, 0xA06E);
  333.  
  334. #if USES68KINLINES
  335. #pragma parameter __D0 SReadDrvrName(__A0)
  336. #endif
  337. extern pascal OSErr SReadDrvrName(SpBlockPtr spBlkPtr)
  338.  TWOWORDINLINE(0x7019, 0xA06E);
  339.  
  340. #if USES68KINLINES
  341. #pragma parameter __D0 SFindDevBase(__A0)
  342. #endif
  343. extern pascal OSErr SFindDevBase(SpBlockPtr spBlkPtr)
  344.  TWOWORDINLINE(0x701B, 0xA06E);
  345.  
  346. #if USES68KINLINES
  347. #pragma parameter __D0 SFindBigDevBase(__A0)
  348. #endif
  349. extern pascal OSErr SFindBigDevBase(SpBlockPtr spBlkPtr)
  350.  TWOWORDINLINE(0x701C, 0xA06E);
  351.  
  352. /*  Advanced  */
  353.  
  354.  
  355. #if USES68KINLINES
  356. #pragma parameter __D0 InitSDeclMgr(__A0)
  357. #endif
  358. extern pascal OSErr InitSDeclMgr(SpBlockPtr spBlkPtr)
  359.  TWOWORDINLINE(0x7020, 0xA06E);
  360.  
  361. #if USES68KINLINES
  362. #pragma parameter __D0 SPrimaryInit(__A0)
  363. #endif
  364. extern pascal OSErr SPrimaryInit(SpBlockPtr spBlkPtr)
  365.  TWOWORDINLINE(0x7021, 0xA06E);
  366.  
  367. #if USES68KINLINES
  368. #pragma parameter __D0 SCardChanged(__A0)
  369. #endif
  370. extern pascal OSErr SCardChanged(SpBlockPtr spBlkPtr)
  371.  TWOWORDINLINE(0x7022, 0xA06E);
  372.  
  373. #if USES68KINLINES
  374. #pragma parameter __D0 SExec(__A0)
  375. #endif
  376. extern pascal OSErr SExec(SpBlockPtr spBlkPtr)
  377.  TWOWORDINLINE(0x7023, 0xA06E);
  378.  
  379. #if USES68KINLINES
  380. #pragma parameter __D0 SOffsetData(__A0)
  381. #endif
  382. extern pascal OSErr SOffsetData(SpBlockPtr spBlkPtr)
  383.  TWOWORDINLINE(0x7024, 0xA06E);
  384.  
  385. #if USES68KINLINES
  386. #pragma parameter __D0 SInitPRAMRecs(__A0)
  387. #endif
  388. extern pascal OSErr SInitPRAMRecs(SpBlockPtr spBlkPtr)
  389.  TWOWORDINLINE(0x7025, 0xA06E);
  390.  
  391. #if USES68KINLINES
  392. #pragma parameter __D0 SReadPBSize(__A0)
  393. #endif
  394. extern pascal OSErr SReadPBSize(SpBlockPtr spBlkPtr)
  395.  TWOWORDINLINE(0x7026, 0xA06E);
  396.  
  397. #if USES68KINLINES
  398. #pragma parameter __D0 SCalcStep(__A0)
  399. #endif
  400. extern pascal OSErr SCalcStep(SpBlockPtr spBlkPtr)
  401.  TWOWORDINLINE(0x7028, 0xA06E);
  402.  
  403. #if USES68KINLINES
  404. #pragma parameter __D0 SInitSRsrcTable(__A0)
  405. #endif
  406. extern pascal OSErr SInitSRsrcTable(SpBlockPtr spBlkPtr)
  407.  TWOWORDINLINE(0x7029, 0xA06E);
  408.  
  409. #if USES68KINLINES
  410. #pragma parameter __D0 SSearchSRT(__A0)
  411. #endif
  412. extern pascal OSErr SSearchSRT(SpBlockPtr spBlkPtr)
  413.  TWOWORDINLINE(0x702A, 0xA06E);
  414.  
  415. #if USES68KINLINES
  416. #pragma parameter __D0 SUpdateSRT(__A0)
  417. #endif
  418. extern pascal OSErr SUpdateSRT(SpBlockPtr spBlkPtr)
  419.  TWOWORDINLINE(0x702B, 0xA06E);
  420.  
  421. #if USES68KINLINES
  422. #pragma parameter __D0 SCalcSPointer(__A0)
  423. #endif
  424. extern pascal OSErr SCalcSPointer(SpBlockPtr spBlkPtr)
  425.  TWOWORDINLINE(0x702C, 0xA06E);
  426.  
  427. #if USES68KINLINES
  428. #pragma parameter __D0 SGetDriver(__A0)
  429. #endif
  430. extern pascal OSErr SGetDriver(SpBlockPtr spBlkPtr)
  431.  TWOWORDINLINE(0x702D, 0xA06E);
  432.  
  433. #if USES68KINLINES
  434. #pragma parameter __D0 SPtrToSlot(__A0)
  435. #endif
  436. extern pascal OSErr SPtrToSlot(SpBlockPtr spBlkPtr)
  437.  TWOWORDINLINE(0x702E, 0xA06E);
  438.  
  439. #if USES68KINLINES
  440. #pragma parameter __D0 SFindSInfoRecPtr(__A0)
  441. #endif
  442. extern pascal OSErr SFindSInfoRecPtr(SpBlockPtr spBlkPtr)
  443.  TWOWORDINLINE(0x702F, 0xA06E);
  444.  
  445. #if USES68KINLINES
  446. #pragma parameter __D0 SFindSRsrcPtr(__A0)
  447. #endif
  448. extern pascal OSErr SFindSRsrcPtr(SpBlockPtr spBlkPtr)
  449.  TWOWORDINLINE(0x7030, 0xA06E);
  450.  
  451. #if USES68KINLINES
  452. #pragma parameter __D0 SDeleteSRTRec(__A0)
  453. #endif
  454. extern pascal OSErr SDeleteSRTRec(SpBlockPtr spBlkPtr)
  455.  TWOWORDINLINE(0x7031, 0xA06E);
  456. extern pascal OSErr OpenSlot(ParmBlkPtr paramBlock, Boolean async);
  457.  
  458. #if USES68KINLINES
  459. #pragma parameter __D0 OpenSlotSync(__A0)
  460. #endif
  461. extern pascal OSErr OpenSlotSync(ParmBlkPtr paramBlock)
  462.  ONEWORDINLINE(0xA200);
  463.  
  464. #if USES68KINLINES
  465. #pragma parameter __D0 OpenSlotAsync(__A0)
  466. #endif
  467. extern pascal OSErr OpenSlotAsync(ParmBlkPtr paramBlock)
  468.  ONEWORDINLINE(0xA600);
  469.  
  470. /*  Device Manager Slot Support  */
  471.  
  472.  
  473. #if USES68KINLINES
  474. #pragma parameter __D0 SIntInstall(__A0, __D0)
  475. #endif
  476. extern pascal OSErr SIntInstall(SQElemPtr sIntQElemPtr, short theSlot)
  477.  ONEWORDINLINE(0xA075);
  478.  
  479. #if USES68KINLINES
  480. #pragma parameter __D0 SIntRemove(__A0, __D0)
  481. #endif
  482. extern pascal OSErr SIntRemove(SQElemPtr sIntQElemPtr, short theSlot)
  483.  ONEWORDINLINE(0xA076);
  484.  
  485. #if USES68KINLINES
  486. #pragma parameter __D0 SVersion(__A0)
  487. #endif
  488. extern pascal OSErr SVersion(SpBlockPtr spBlkPtr)
  489.  TWOWORDINLINE(0x7008, 0xA06E);
  490.  
  491. #if USES68KINLINES
  492. #pragma parameter __D0 SetSRsrcState(__A0)
  493. #endif
  494. extern pascal OSErr SetSRsrcState(SpBlockPtr spBlkPtr)
  495.  TWOWORDINLINE(0x7009, 0xA06E);
  496.  
  497. #if USES68KINLINES
  498. #pragma parameter __D0 InsertSRTRec(__A0)
  499. #endif
  500. extern pascal OSErr InsertSRTRec(SpBlockPtr spBlkPtr)
  501.  TWOWORDINLINE(0x700A, 0xA06E);
  502.  
  503. #if USES68KINLINES
  504. #pragma parameter __D0 SGetSRsrc(__A0)
  505. #endif
  506. extern pascal OSErr SGetSRsrc(SpBlockPtr spBlkPtr)
  507.  TWOWORDINLINE(0x700B, 0xA06E);
  508.  
  509. #if USES68KINLINES
  510. #pragma parameter __D0 SGetTypeSRsrc(__A0)
  511. #endif
  512. extern pascal OSErr SGetTypeSRsrc(SpBlockPtr spBlkPtr)
  513.  TWOWORDINLINE(0x700C, 0xA06E);
  514.  
  515. #if USES68KINLINES
  516. #pragma parameter __D0 SGetSRsrcPtr(__A0)
  517. #endif
  518. extern pascal OSErr SGetSRsrcPtr(SpBlockPtr spBlkPtr)
  519.  TWOWORDINLINE(0x701D, 0xA06E);
  520. #ifdef __cplusplus
  521. }
  522. #endif
  523.  
  524. #endif
  525.  
  526.